/*
 *@description: 登录接口
 *@Author:@rennan
 *@Date:2024-06-27 11:05:09
 *@version: V1.0.0
*/

// 导入express Router
/**
 * @swagger
 *       /api/login:
 *       post:
 *           description: 用户登录接口
 *           produces:
 *               - application/json
 *           parameters:
 *               - name: username
 *                 description: 用户名
 *                 required: true
 *                 type: string
 *               - name: password,
 *                 description: 密码
 *                 required: true
 *                 type: string
 *           responses:
 *               200:
 *                   description: 登录成功
 *               401:
 *                   description: 用户名或密码错误
 *               500:
 *                   description: 服务器错误
 */
const express = require('express');
const router = express.Router();
// 导入连接池对象
const sql = require('../db/index')

//编写登录接口

router.post('/login', async (req, res) => {
  //获取用户传递的登录信息
  let { username, password } = req.body;
  //从数据库中获取并判断用户信息
  try {
    const [rows] = await sql.execute('SELECT * FROM base_user WHERE username =? AND password =?', [username, password]);
    //判断用户信息
    if (rows.length > 0) {
      //数据库中有对应的用户及正确的密码
      res.send({
        code: 200,
        msg: '登录成功',
        data: rows[0],
        //token用来验证用户是否登录  jsonwebtoken 插件
        token: Math.random().toString(36)
      })
    } else {
      res.status(401).send('登录失败,用户名或密码错误');
    }
  }
  catch (err) {
    res.status(500).send(err+'服务器错误');
  }
})
//1. 请求方式post 
//2. '/login' 接口地址
//3. 接收客户端传递的登录信息  username password
//4. 从数据库中获取用户信息
//5. 判断用户输入的登录信息是否正确
//6. 返回相应的登录结果
//7. 导出router

module.exports = router;